Telegram Group & Telegram Channel
🖥 Малоизвестная функция C#: Caller Information

❗️ Функциональность Caller Information позволяет передавать в метод информацию о вызывающем его коде, например:

- Имя файла
- Номер строки в файле
- Имя вызывающего метода

🌟 Эта особенность может быть крайне полезной для логирования, отладки и тестирования кода. Хотя она существует с версии C# 5.0, о ней часто забывают.

Как это работает?

💡 Для получения информации о вызывающем методе используются специальные атрибуты:

🌟 [CallerFilePath] — возвращает полный путь к исходному файлу, в котором был вызван метод.
🌟 [CallerLineNumber] — возвращает номер строки в файле, где был вызван метод.
🌟 [CallerMemberName] — возвращает имя метода или свойства, из которого был вызван метод.

🔍 Пример использования

Предположим, у нас есть метод Log, который записывает сообщение в консоль вместе с информацией о вызове:


using System;
using System.Runtime.CompilerServices;

class Program
{
static void Main()
{
TestMethod();
}

static void TestMethod()
{
Log("Это тестовое сообщение");
}

static void Log(string message,
[CallerFilePath] string filePath = "",
[CallerLineNumber] int lineNumber = 0,
[CallerMemberName] string memberName = "")
{
Console.WriteLine($"Сообщение: {message}");
Console.WriteLine($"Файл: {filePath}");
Console.WriteLine($"Метод: {memberName}");
Console.WriteLine($"Строка: {lineNumber}");
}
}


🔍 Вывод:


Файл: C:\Users\...\Program.cs
Метод: TestMethod
Строка: 11


💡 Применение:

🌟 Логирование — автоматическое добавление контекста при записи логов.
🌟 Отладка — упрощение поиска ошибок, так как можно сразу определить файл, метод и строку.
🌟 Анализ производительности — отслеживание производительности конкретных методов.
🌟 Асинхронные вызовы — идентификация методов в асинхронных цепочках вызовов.

@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/csharp_1001_notes/556
Create:
Last Update:

🖥 Малоизвестная функция C#: Caller Information

❗️ Функциональность Caller Information позволяет передавать в метод информацию о вызывающем его коде, например:

- Имя файла
- Номер строки в файле
- Имя вызывающего метода

🌟 Эта особенность может быть крайне полезной для логирования, отладки и тестирования кода. Хотя она существует с версии C# 5.0, о ней часто забывают.

Как это работает?

💡 Для получения информации о вызывающем методе используются специальные атрибуты:

🌟 [CallerFilePath] — возвращает полный путь к исходному файлу, в котором был вызван метод.
🌟 [CallerLineNumber] — возвращает номер строки в файле, где был вызван метод.
🌟 [CallerMemberName] — возвращает имя метода или свойства, из которого был вызван метод.

🔍 Пример использования

Предположим, у нас есть метод Log, который записывает сообщение в консоль вместе с информацией о вызове:


using System;
using System.Runtime.CompilerServices;

class Program
{
static void Main()
{
TestMethod();
}

static void TestMethod()
{
Log("Это тестовое сообщение");
}

static void Log(string message,
[CallerFilePath] string filePath = "",
[CallerLineNumber] int lineNumber = 0,
[CallerMemberName] string memberName = "")
{
Console.WriteLine($"Сообщение: {message}");
Console.WriteLine($"Файл: {filePath}");
Console.WriteLine($"Метод: {memberName}");
Console.WriteLine($"Строка: {lineNumber}");
}
}


🔍 Вывод:


Файл: C:\Users\...\Program.cs
Метод: TestMethod
Строка: 11


💡 Применение:

🌟 Логирование — автоматическое добавление контекста при записи логов.
🌟 Отладка — упрощение поиска ошибок, так как можно сразу определить файл, метод и строку.
🌟 Анализ производительности — отслеживание производительности конкретных методов.
🌟 Асинхронные вызовы — идентификация методов в асинхронных цепочках вызовов.

@csharp_1001_notes

BY C# 1001 notes


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/csharp_1001_notes/556

View MORE
Open in Telegram


C 1001 notes Telegram | DID YOU KNOW?

Date: |

The lead from Wall Street offers little clarity as the major averages opened lower on Friday and then bounced back and forth across the unchanged line, finally finishing mixed and little changed.The Dow added 33.18 points or 0.10 percent to finish at 34,798.00, while the NASDAQ eased 4.54 points or 0.03 percent to close at 15,047.70 and the S&P 500 rose 6.50 points or 0.15 percent to end at 4,455.48. For the week, the Dow rose 0.6 percent, the NASDAQ added 0.1 percent and the S&P gained 0.5 percent.The lackluster performance on Wall Street came on uncertainty about the outlook for the markets following recent volatility.

For some time, Mr. Durov and a few dozen staffers had no fixed headquarters, but rather traveled the world, setting up shop in one city after another, he told the Journal in 2016. The company now has its operational base in Dubai, though it says it doesn’t keep servers there.Mr. Durov maintains a yearslong friendship from his VK days with actor and tech investor Jared Leto, with whom he shares an ascetic lifestyle that eschews meat and alcohol.

C 1001 notes from kr


Telegram C# 1001 notes
FROM USA